前言

今天我们来打造一个个人播放器,我们的目的是为了学习electron怎么使用!

设计

生产环境需要的模块

  1. electron
  2. electron-store:用来存储数据
  3. uuid:为了生成唯一ID
  4. bootstrap:界面UI

使用的图标库

font-awesome(我们使用CDN的方式引入)

使用的打包模块

electron-packager

整体构想 一,我们启动应用后进入主页面,点击添加歌曲到曲库进入添加页面. 二,在添加页面点击选择音乐打开操作系统的文件选择框. 三,选中文件后把文件信息放入添加页面. 四,在添加页面点击导入音乐,把信息导入主页面. 五,在主页面实现音乐播放,暂停,删除等功能

页面 20200410162044-2021-12-29-17-06-04 20200410162109-2021-12-29-17-06-24

目录结构 20200410162659-2021-12-29-17-06-40

实现

BrowserWindow类再封装成AppWindow,实现了窗口代码的复用

20200410163353-2021-12-29-17-06-55

electron-store实例化类进一步封装成存储music信息的类

/**
 * 增强electron-store模块,定制化音乐存储文件
 * */
const Store= require('electron-store')
const uuidv4=require('uuid/v4')
const path=require('path')

class DataStore extends Store{
    //构造函数,该对象创建后,获取tracks属性,如果不存在返回个空数组
    constructor(settings){
        super(settings)
        this.tracks=this.get('tracks') || []
    }
    //保存tracks属性内容
    saveTracks(){
        this.set('tracks',this.tracks);
        return this;
    }
    //获取tracks属性内容
    getTracks(){
        return this.get('tracks') || []
    }
    //添加不重复的tracks属性内容
    addTracks(tracks){
        const tracksWithProps = tracks.map(track=>{
            return{
                id:uuidv4(),
                path:track,
                fileName:path.basename(track)
            }
        }).filter(track=>{
            const currentTracksPath = this.getTracks().map(track=>track.path)
            return currentTracksPath.indexOf(track.path)<0;
        })
        this.tracks=[...this.tracks,...tracksWithProps]
        return this.saveTracks()
    }
    //根据id删除tracks中的内容
    deleteTrack(trackId){
        this.tracks=this.tracks.filter(item=>item.id!=trackId);
        return this.saveTracks();
    }
}

module.exports=DataStore;

完整实例

实例放在github上,里面有详细注释,请点击我

打包

  1. 全局安装electron-packager模块

    npm install -g electron-packager

  2. package.json写个脚本

    "pack": "electron-packager . music-app --win --out ../music-app-dist --arch=x64 --app-version=0.0.1 --electron-version=8.2.1"

参数解析: electron-packager . music-app .是当前目录,music-app是应用的名称 --win --arch=x64 是windows平台的64位系统 --out ../music-app-dist 生成应用所在的路径 --electron-version=8.2.1 electron版本

  1. 执行打包命令

    ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/ npm run pack

大家注意,打包会下载一个文件,下载的很慢,所以把仓库源定位为淘宝的仓库.

总结

通过该案例就能进一步深入了解electron的工作原理,并且有一个个人的播放器,那是非常好的

THE END
推荐文章
  • 黄帝内经-第39篇-举痛论篇(3)

  • Linux下tar命令

  • 微信公众号开发(2)-微信公众号验证逻辑

  • 黄帝内经-第34篇-逆调论篇(1)

  • bootstrap中的Accordion组件如何使用

  • Dockerfile的最佳实践

  • docker删除未使用到的镜像

  • 解决wordpress中自定义类型或page类型的分页查询404问题

评论 共0条
开启精彩搜索

热门搜索

暂无

历史搜索

用户名/邮箱/手机号
密码
用户名
密码
重复密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
注册
找回密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

0字

0字

2024年10月

0字

新增

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

0字

新增

0字

0字

0字

0字

新增

0字

0字